#============ vcpkg 中只编译了 release 版本的库, 没有 debug 版本的库, 导致在 debug 模式下链接失败
#试图修复


# ----- 全局设置：在 VS Debug 配置下使用 Release 版本的库
if(MSVC)
    # 1. 配置 Debug 模式使用 Release 版本的库
    # 这会让所有导入的库目标在 Debug 模式下使用 Release 版本
    set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG "Release")
    
    # 2. 统一运行时库设置，确保 Debug 和 Release 使用相同的运行时库
    # MultiThreadedDLL 对应 Release 版本的运行时库
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
    
    # 3. 确保 Debug 模式下不使用带 "d" 后缀的库
    foreach(config "Debug" "RelWithDebInfo" "MinSizeRel")
        string(TOUPPER "${config}" CONFIG)
        set(CMAKE_${CONFIG}_POSTFIX "")
    endforeach()
    
    message(STATUS "VS Debug 配置已设置为使用 Release 版本的库")
endif()


#xxxxxxxxxxxxxxxxxxx 打印 Poco::Foundation 的 .dll 和 .lib 文件路径
message(STATUS "================================ Poco::Foundation 库文件路径")
# 获取 DLL 文件路径（Windows 下）
get_target_property(POCO_DLL_RELEASE Poco::Foundation IMPORTED_LOCATION_RELEASE)
get_target_property(POCO_DLL_DEBUG Poco::Foundation IMPORTED_LOCATION_DEBUG)
if(POCO_DLL_RELEASE)
    message(STATUS "Poco::Foundation Release DLL 路径: ${POCO_DLL_RELEASE}")
else()
    message(STATUS "未找到 Poco::Foundation Release DLL 文件")
endif()
if(POCO_DLL_DEBUG)
    message(STATUS "Poco::Foundation Debug DLL 路径: ${POCO_DLL_DEBUG}")
else()
    message(STATUS "未找到 Poco::Foundation Debug DLL 文件")
    # 如果没有 Debug DLL，设置 Debug 配置使用 Release DLL
    if(POCO_DLL_RELEASE)
        set_target_properties(Poco::Foundation PROPERTIES
            IMPORTED_LOCATION_DEBUG "${POCO_DLL_RELEASE}"
        )
        message(STATUS "[ymy] 已设置 Poco::Foundation Debug DLL 路径为 Release 版本: ${POCO_DLL_RELEASE}")
    endif()
endif()

# 获取 LIB 文件路径
get_target_property(POCO_LIB_RELEASE Poco::Foundation IMPORTED_IMPLIB_RELEASE)
get_target_property(POCO_LIB_DEBUG Poco::Foundation IMPORTED_IMPLIB_DEBUG)
if(POCO_LIB_RELEASE)
    message(STATUS "Poco::Foundation Release LIB 路径: ${POCO_LIB_RELEASE}")
else()
    # 如果没找到 IMPORTED_IMPLIB_RELEASE，尝试获取 IMPORTED_LOCATION（可能是静态库）
    get_target_property(POCO_LIB_RELEASE Poco::Foundation IMPORTED_LOCATION_RELEASE)
    if(POCO_LIB_RELEASE)
        message(STATUS "Poco::Foundation Release 库路径: ${POCO_LIB_RELEASE}")
    else()
        message(STATUS "未找到 Poco::Foundation Release 库文件")
    endif()
endif()
if(POCO_LIB_DEBUG)
    message(STATUS "Poco::Foundation Debug LIB 路径: ${POCO_LIB_DEBUG}")
else()
    message(STATUS "未找到 Poco::Foundation Debug LIB 文件")
    # 如果没有 Debug LIB，设置 Debug 配置使用 Release LIB
    if(POCO_LIB_RELEASE)
        set_target_properties(Poco::Foundation PROPERTIES
            IMPORTED_IMPLIB_DEBUG "${POCO_LIB_RELEASE}"
        )
        message(STATUS "已设置 Poco::Foundation Debug LIB 路径为 Release 版本: ${POCO_LIB_RELEASE}")
    endif()
endif()
message(STATUS "=======================================")